如何使它不共享相同的内存 #包括 typedef结构测试用例{ 字符*之前; }ts; 内部主(空){ ts t[2]={{“abcd”}, {“abcd”}; t[0]。在[0]之前=t[0]。在[2]之前=t[0]。在[3]之前=b'; printf(“%s-%s\n”,t[0]。之前,t[1]。之前); 返回0; }
输出是 bbbb-bbbb 我在Cygwin中使用gcc进行编译 cc-g试验。c-o试验如何使它不共享相同的内存 #包括 typedef结构测试用例{ 字符*之前; }ts; 内部主(空){ ts t[2]={{“abcd”}, {“abcd”}; t[0]。在[0]之前=t[0]。在[2]之前=t[0]。在[3]之前=b'; printf(“%s-%s\n”,t[0]。之前,t[1]。之前); 返回0; },c,C,输出是 bbbb-bbbb 我在Cygwin中使用gcc进行编译 cc-g试验。c-o试验 我的问题是,使用什么编译选项,我可以获得bbbb-abcd的结果?您不应该写入字符串,它们是“不可变的”,写入它会导致未定义的行为 因此,编译器可以自由地对两个字符串使用相同的位置 提示:您不应该写入字符串,它们是“不可变的”,写入字符串会导致未定义的行为 因此,编译器可以自由地对两个字符串使用相同的位置 提示:t[0]。在[3]之前='b'将在某些系统上执行分段故障。不能写入常量字符串 #include
我的问题是,使用什么编译选项,我可以获得bbbb-abcd的结果?您不应该写入字符串,它们是“不可变的”,写入它会导致未定义的行为 因此,编译器可以自由地对两个字符串使用相同的位置
提示:您不应该写入字符串,它们是“不可变的”,写入字符串会导致未定义的行为 因此,编译器可以自由地对两个字符串使用相同的位置
提示:
t[0]。在[3]之前='b'代码>将在某些系统上执行分段故障。不能写入常量字符串
#include <stdio.h>
typedef struct TESTCASE{
char *before;
}ts;
int main(void) {
ts t[2] = {{"abcd"},
{"abcd"}};
t[0].before[0] = t[0].before[2] = t[0].before[3] = 'b';
printf("%s - %s\n", t[0].before, t[1].before);
return 0;
}
#包括
typedef结构测试用例{
[5]之前的字符;
}ts;
内部主(空){
ts t[2]={{{'a','b','c','d',0},
{{'a','b','c','d',0}};
t[0]。在[0]之前=t[0]。在[2]之前=t[0]。在[3]之前=b';
printf(“%s-%s\n”,t[0]。之前,t[1]。之前);
返回0;
}
t[0]。在[3]之前='b'代码>将在某些系统上执行分段故障。不能写入常量字符串
#include <stdio.h>
typedef struct TESTCASE{
char *before;
}ts;
int main(void) {
ts t[2] = {{"abcd"},
{"abcd"}};
t[0].before[0] = t[0].before[2] = t[0].before[3] = 'b';
printf("%s - %s\n", t[0].before, t[1].before);
return 0;
}
#包括
typedef结构测试用例{
[5]之前的字符;
}ts;
内部主(空){
ts t[2]={{{'a','b','c','d',0},
{{'a','b','c','d',0}};
t[0]。在[0]之前=t[0]。在[2]之前=t[0]。在[3]之前=b';
printf(“%s-%s\n”,t[0]。之前,t[1]。之前);
返回0;
}
从你鼻子里冒出来的守护进程不痛吗?这个问题似乎离题了,因为它是重复的(但很难找到重复的),而且不太可能在将来帮助其他人。从你鼻子里冒出来的守护进程不痛吗?这个问题似乎离题了,因为它是重复的(但找到重复项是很困难的)并且因为它不太可能在将来帮助其他人。Linux和AIX(使用XLC)是两个这样的系统,它们将出现seg故障。Linux和AIX(使用XLC)是两个这样的系统,它们将出现seg故障。