1、只有分配了的存储空间才能当数组使用:
char *s1;
char s2[10]="hello";
strcpy(s1,s2);
程序会出现内存错误,如下两种方式是正确的:
char s1[10]; //程序运行时会自动分配数组空间;
char s2[10]="hello";
strcpy(s1,s2);
------------------------------
char *s1;
char s2[10]="hello";
s1=(char*) malloc(sizeof(char)*10); //手动分配存储空间;
strcpy(s1,s2);
2、用malloc分配了存储空间的指针可以当数组使用,如:
printf("%c/n",s1[i]); //对1中的s1当数组使用;
3、sizeof计算一个指针的长度为4,如sizeof(s1)=4;
sizeof一个数组等于数组的长度,如sizeof(s2) = 10;
4、用strlen(char *s) 计算字符串的长度。
char *s1;
char s2[10]="hello";
strcpy(s1,s2);
程序会出现内存错误,如下两种方式是正确的:
char s1[10]; //程序运行时会自动分配数组空间;
char s2[10]="hello";
strcpy(s1,s2);
------------------------------
char *s1;
char s2[10]="hello";
s1=(char*) malloc(sizeof(char)*10); //手动分配存储空间;
strcpy(s1,s2);
2、用malloc分配了存储空间的指针可以当数组使用,如:
printf("%c/n",s1[i]); //对1中的s1当数组使用;
3、sizeof计算一个指针的长度为4,如sizeof(s1)=4;
sizeof一个数组等于数组的长度,如sizeof(s2) = 10;
4、用strlen(char *s) 计算字符串的长度。