习题 8.19(1) 编写一个函数new,对n个字符开辟连续的存储空间,此函数应返回一个指针(地址),指向字符串开始的空间。new(n)表示分配n个字节的内存空间。

C程序设计(第四版) 谭浩强 习题8.19(1) 个人设计

习题 8.19(1) 编写一个函数new,对n个字符开辟连续的存储空间,此函数应返回一个指针(地址),指向字符串开始的空间。new(n)表示分配n个字节的内存空间。

代码块:

方法1:

#include 
#include 

char *news(char *s[], int n);

int main()
{
	char *str[10], **p;
	int i;
	printf("Please enter array number: ");
	scanf("%d", &i);
	*str=news(str, i);
	for (p=str, printf("Please enter %d strings: ", i); p<str+i; scanf("%s", *p++));
	for (p=str, printf("Result: "); p<str+i; printf("%s ", *p++));
	printf("\n");
	system("pause");
	return 0;
}
char *news(char *s[], int n)
{
	for (int i=0; i<n; s[i++]=(char *)malloc(20*sizeof(char)));
	return *s;
}

方法2:

#include 
#include 

char *neww(int n);

int main()
{
    int num;
    char *n;
    printf("Please enter number: ");
    scanf("%d", &num);
    n=neww(num);
    printf("Address=%d\n", *n);
    system("pause");
    return 0;
}
char *neww(int n)
{
    char *p;
    p=(char *)malloc(n*sizeof(char));
    return p;
}

你可能感兴趣的:(C程序设计,(第四版),谭浩强,课后答案)