昏了。。。大家来看看内存动态分配
说明一个可存放10字符串的字符串数组,各字符串由用户输入,数组中每个元素的大小根据用户输入字符串的长度动态确定。以前只遇到过一维数组的动态分配。如果是二维或是多维数组时,不知道该怎么写了。懵了~!!!
不知道这样行吗
#include<stdio.h>
#include<malloc.h>
#include<string.h>
unsigned calculate(char *a);
void main()
{
int i;
char *a[10];//定义一个指针数组 每个元素是一个指针
char t[100];//定义一个临时的数组 存放输入的字符串
for(i=0;i<10;i++)
{
printf("input %d character string\n",i+1);
gets(t);
a[i]=(char *)malloc(calculate(t));//为每一个指针分配空间 作为字符串数组 分配大小由计算所得
strcpy(a[i],t); //把临时里的字符串复制进 每个指针分配的空间里
}
for(i=0;i<10;i++)
{
printf(" %d character string is %s\n",i+1,a[i]);//输出,LZ要实现什么功能就不得而知了
}
getch();
}
unsigned calculate(char *a)
{
char *p,x=0;
p=a;
while((*p)!=0)
{
x++;
p++;
}
return x;
}
本人新手
不知道这样做行不