这个问题已经在这里有一个答案:
- C中的数组索引超出界限 10的答案
我使用malloc分配N(Y的字符串长度)为X字节。 复制Y到X后然而,我加入3-多个字符包括在X“\ 0”和我没有错误。
我不应该得到一个错误的尝试,因为我已经分配的空间只够10个字符赋值给未分配的内存? 这是不确定的行为?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int *argc,char **argv)
{
char *x,*y="123465412";
int i,n;
n=strlen(y);
x=(char *)malloc(sizeof(char)*n);
for(i=0; i<n ; i++)
x[i]=y[i];
x[i]='5';
x[i+1]='5';
x[i+2]='\0';
puts(x);
}