【发布时间】:2015-12-19 17:15:48
【问题描述】:
我需要通过malloc() 分配字符数组,然后打印出来。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main (void){
int i, n, l;
char **p;
char bufor[100];
printf("Number of strings: ");
scanf("%d", &n);
p=(char**)malloc(n*sizeof(char*));
getchar();
for (i=0; i<n; ++i){
printf("Enter %d. string: ", i+1);
fgets(bufor, 100, stdin);
l=strlen(bufor)+1;
*p=(char*)malloc(l*sizeof(char));
strcpy(*p, bufor);
}
for (i=0; i<n; ++i){
printf("%d. string is: %s", i+1, *(p+i));
}
return 0;
}
我在打印这些字符串时遇到了问题。我不知道如何获得它们。
【问题讨论】:
-
因此,您分配了一个指向字符的指针数组,然后分配内存并始终将其分配给指向字符的 first 指针,然后想知道为什么其余部分没有填充?使用
*(p+i)= malloc(...
标签: c arrays pointers char malloc