文章

5

粉丝

29

获赞

0

访问

743

头像
题号1895,二维数组输入问题C++
WRW VIP
我要提问
发布于2024年3月22日 21:11
阅读数 143

 动态分配二维数组并且输入值可以这样写吗,网上看到的这样的写法,但是VS上一直显示数组无法读取内存

 char** T = (char**)malloc(n * sizeof(char*));
    for (int i = 0; i < n; i++)
        T[i] = (char*)malloc(MAX * sizeof(char));

    //输入
    for (int i = 0; i < n; i++)
        scanf("%s", &T[i]);

登录查看完整内容


登录后发布评论

1 条评论
snake VIP
2024年3月22日 21:56

可以,不过考试的时候建议不要这么写,容易翻车

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int i;
	int n;
	scanf("%d",&n);//n为字符串个数
	char **T=(char**)malloc(sizeof(char*)*n);//申请有n个字符串的内存
	for(i=0;i<n;i++)
	{
		//指针可以用数组来表示
		T[i]=(char *)malloc(sizeof(char)*20);//申请字符串的大小
	}
	for(i=0;i<n;i++)
	{
	    scanf("%s",T[i]);
	}
	for(i=0;i<n;i++)
	{
		printf("%s\n",T[i]);
		free(T[i]);//释放每个字符串的内存
	}
	free(T);//释放指向指针的T指针的内存
	return 0;
}

 

赞(0)