Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使它不共享相同的内存 #包括 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 - Fatal编程技术网

如何使它不共享相同的内存 #包括 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; }

如何使它不共享相同的内存 #包括 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-bbbb

我在Cygwin中使用gcc进行编译

cc-g试验。c-o试验


我的问题是,使用什么编译选项,我可以获得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故障。