下面是个程序:要求是定一个指针数组,含有五个元素,写个输入程序,要求联系输入五个长短不一的字符串!

来源:百度知道 编辑:UC知道 时间:2024/05/23 14:53:38
这是我写的程序:好像有错误啊:反正运行不行。求高人帮忙。
char *name[5];
int i;
int n=5;
for(i=0;i<n;i++)
scanf("%s",name[i]++);

楼上的两位都已经把长度分配死了,如果字符串超过80个,超过256个,程序是否回崩溃呢?
要实现真正的动态分配,请看:
#include <stdio.h>
#include <stdlib.h>
void main()
{
int i=0,k=0;
char ch = 0;
char *name[5] = {NULL}; // 5个空指针

printf("Please input 5 string:\n");
for (i=0; i<5; i++)
{
k = 0;
while((ch=getchar())!='\n')
{
name[i] = (char *)realloc(name[i], sizeof(char)*(k+2)); // 支持输入任意长,真正的动态分配
*(name[i]+k) = ch;
k++;
*(name[i]+k) = '\0';
}
}
printf("Your input strings are below:\n");
for (i=0; i<5; i++)
{
printf("%s\n", name[i]);
free(name[i]); // 释放
}
}

char *name[5];

char buff[5*256];
int i;
for(i=0;i<5;i++)
name[i]=&buff[i*256];
for(i=0;i<5;i++)
scanf("%s",name[i]);
//查看:
for(i=0;i<5;i++)
pr