指针数组的应用

来源:互联网 发布:大数据分析scala 编辑:程序博客网 时间:2024/05/21 17:34


以下为自己犯的错误代码

#include <stdio.h>#define maxsize 3char* test[maxsize];int main(){char names[maxsize];int i;for(i=0;i<maxsize;i++){scanf("%s",names);test[i]=names;//printf("%s\n",test[i]);}for(i=0;i<maxsize;i++){printf("%s+",test[i]);}return 0;}

应改为:

/*maxsize指的是最多有几组数据size指的是每个字符串就大的长度说明:test是指针数组,要想使test中的每一个指针都指向输入的不同的字符串,则在每一次输入字符串时,都要动态开辟一个新的空间。而不是单纯的只用一个数组来接收,这样的话会使所有的指针指向同一个字符串*/#include <stdio.h>#include <stdlib.h>#define maxsize 3char* test[maxsize];int size = 10;int main(){char *str = NULL;int i;for(i=0;i<maxsize;i++){str = malloc(sizeof(char) *size);scanf("%s",str);test[i]=str;}for(i=0;i<maxsize;i++){printf("%s+",test[i]);}for(i=0;i<maxsize;i++){free(test[i]);}return 0;}


原创粉丝点击