【发布时间】:2012-01-14 11:13:27
【问题描述】:
这里是c代码:
char **s;
s[334]=strdup("test");
printf("%s\n",s[334]);`
我知道 strdup 分配了“test”,但是我们将指针指向字符串“test”的情况 s[334] 没有分配,但是,这段代码就像一个魅力
【问题讨论】:
-
具体来说,s 是在堆栈上分配的,因此它实际上可能包含一个合法的指针,这取决于您之前在其他函数中所做的操作。
-
没有其他功能,主要只有这三行。
-
你主要给了什么签名?
int main(),或int main(int argc, char ** argv)? -
使用的签名是 int main(),使用 gcc 编译
-
好吧,你说得对,这里发生了奇怪的...
标签: c segmentation-fault