用memset初始化二维数组

love_QJP 2017-02-02 10:45:02
如标题所说,怎样把a[100][100]全部用memset初始化为1.
...全文
2450 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yunshouhu 2017-02-06
  • 打赏
  • 举报
回复
代码如下:

#include <iostream>
#include <stdlib.h>

using namespace std;

void  test_memset_for_c()
{
#define nrows 100
#define ncolumns 100
	int** array1 = (int**)malloc(nrows * sizeof(int *));
	for (int i = 0; i < nrows; i++)
	{
		array1[i] = (int*)malloc(ncolumns * sizeof(int));
		memset(array1[i], 0, ncolumns * sizeof(int));
	}

}

void  test_memset_for_cpp()
{
#define LEN 100
	int arr[LEN][LEN];
	for (int i = 0; i < LEN; i++)
	{
		memset(arr[i], 0, LEN * sizeof(int));
	}
}

int main()
{
	cout << "Hello World!" << endl;
	test_memset_for_c();
	test_memset_for_cpp();
	return 0;
}
幻夢之葉 2017-02-03
  • 打赏
  • 举报
回复
引用 5 楼 love_QJP 的回复:
[quote=引用 4 楼 paschen 的回复:] memset(a, 1, sizeof(a))
这样我试了 不对[/quote] 你别对参数这样子用,别对退化为指针的数组用。
yunshouhu 2017-02-03
  • 打赏
  • 举报
回复
要for循环来memset二维数组,目前手机打字,后天上班了给你弄。
fefe82 2017-02-03
  • 打赏
  • 举报
回复
for (){ for() { a[i][j]=1; } }
yuanS7 2017-02-03
  • 打赏
  • 举报
回复
只有char型才可以,可以用fill
love_QJP 2017-02-02
  • 打赏
  • 举报
回复
引用 4 楼 paschen 的回复:
memset(a, 1, sizeof(a))
这样我试了 不对
paschen 2017-02-02
  • 打赏
  • 举报
回复
memset(a, 1, sizeof(a))
www_adintr_com 2017-02-02
  • 打赏
  • 举报
回复
memset 是按字节来操作的, 如果 a 的类型是 char 就可以, memset(a, 1, 100 * 100) 就行了
love_QJP 2017-02-02
  • 打赏
  • 举报
回复
能不能用memset把二维数组初始化为1
qijixingzhe 2017-02-02
  • 打赏
  • 举报
回复
解释的清楚一点

70,036

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧