char *data = (char)malloc(10000);
sizeof(data)=sizeof(char *)=8;
sizeof(char)=1;
strlen=10004 ??
提问为什么?
后来了解到,strlen是根据‘\0’来确定字符串长度。所以。有可能从data地址开始寻起的第10004个位置才是‘\0’字符。
“<<”这个运算符代表输出流,也就是说遇见‘\0’会结束。
基于以上
一定要记得。
char * data = new char[10]; //分配内存到堆内存 。栈内存如果分配数组过大的情况下可能会出现内存溢出的情况。
data[8] = '\0'; //标定结束的位置。
memset(data,'3',strlen(data)); // 初始化,将data里的数值设为3,长度为strlen(len),此例中为8。