|
|
我想动态分配一个二维数组,可总会出现如下错误
xl@xl:~$ cat test.c
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
int main()
{
char **s;
int i;
s = (char**)malloc(12);
for(i=0; i<12; i++){
s = (char *)malloc(16);
strcpy(s,"abcdefghijklmno");
}
for(i=0; i<12; i++){
printf("\ts[%d] = %s\n",i,s);
}
return 1;
}
xl@xl:~$ gcc -g test.c -o test
xl@xl:~$ ./test
s[0] = xijklmno
s[1] = ijklmno
s[2] = abcdefghijklmno
s[3] = abcdefghijklmno
s[4] = abcdefghijklmno
s[5] = abcdefghijklmno
s[6] = abcdefghijklmno
s[7] = abcdefghijklmno
s[8] = abcdefghijklmno
s[9] = abcdefghijklmno
s[10] = abcdefghijklmno
s[11] = abcdefghijklmno
xl@xl:~$
数组前两个元素的值会改变,请问这是怎么回事
如何让元素值稳定不变 |
|