我怎么能简单地用0元素初始化一个多维C数组,如下所示:
int a[2][2] = { { 0, 0 }, {0, 0} }
Run Code Online (Sandbox Code Playgroud) 我有这个数组
unsigned char bit_table_[10][100];
Run Code Online (Sandbox Code Playgroud)
用 0 填充它的正确方法是什么。我试过了
std::fill_n(bit_table_,sizeof(bit_table_),0x00);
Run Code Online (Sandbox Code Playgroud)
但 vc 2010 将其标记为错误。
我正在玩C++中的数组.我定义了一个名为matrix的二维数组,我将提取负值并将其分配给名为array的数组.
有没有办法快速将数组初始化为零而不是枚举所有元素?我查看了其他帖子和行,例如: int array[10] = {}或者
int array[10] = {0}不对我的编译器起作用.error: variable-sized object ‘array’ may not be initialized如果我尝试使用这些语句,我会收到错误消息.
我的教科书说所有数组在声明时都被初始化为零,但是我在我的编译器上测试过这个并不是真的.我不得不通过使用for循环强制它为零.这样做有正确的方法吗?
哦顺便说一句,我有一个mac并使用g ++进行编译.当我这样做时,man g++它说它是llvm-gcc编译器的符号链接.
#include<iostream>
const int NROWS = 4, NCOLS = 5;
int matrix[][NCOLS] = { 16, 22, 99, 4, 18,
-258, 4, 101, 5, 98,
105, 6, 15, 2, 45,
33, 88, 72, 16, 3};
int main()
{
int SIZE = 10;
int array[SIZE];
int count=0;
// Values of array before initalized
for(int i = …Run Code Online (Sandbox Code Playgroud) 我正在编写一个打开txt文件的ac程序,想要读取txt文件的最后一行.我不是那么精通C所以请记住,我可能不知道C中的所有概念.我被困在我使用fscanf读取我的txt文件的所有行的部分,但我想采取最后一行txt文件并获取如下所述的值.
这是我不完整的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
FILE *sync;
void check()
{
int success; //to hold the results if the timestamps match
sync = fopen("database.txt","r");
char file[] = "database.txt";
while (fscanf(sync, "%d.%06d", &file) != EOF)
{
}
fclose(sync);
}
Run Code Online (Sandbox Code Playgroud)
示例txt文件:
/////// / //// ///// ///// //////////////// Time: 1385144574.787665 //////// /
/////// / //// ///// ///// //////////////// Time: 1385144574.787727 //////// /
/////// / //// ///// ///// //////////////// Time: 1385144574.787738 //////// /
/////// / //// ///// ///// //////////////// Time: 1385144574.787746 //////// …Run Code Online (Sandbox Code Playgroud) 我试图找出将数组初始化为全零的正确方法(即好像你已经在数组上做了一个memset).
我在堆栈溢出(和其他来源)的各个方面找到了以下方法:
char myArray1[10] = {0};
char myArray2[10] = {0,};
char myArray3[10] = {[0 ... 9] = 0};
char myArray4[10] = {0,0,0,0,0,0,0,0,0,0};
Run Code Online (Sandbox Code Playgroud)
我更喜欢最简单的语法变体......我使用的是{0},但我没有找到任何证明这实际上是正确的.
我尝试了以下代码:
int a[4] = {0};
int b[4] = {5};
int c[4];
printf("%d %d %d %d %d %d\n", a[0], a[3] , b[0], b[3], c[0], c[3]);
Run Code Online (Sandbox Code Playgroud)
得到以下结果:
0 0 5 0 random random
Run Code Online (Sandbox Code Playgroud)
虽然我得到了为什么我得到了c数组的随机值,我不明白为什么分配{5}不起作用{0},只是初始化数组的第一个元素.
有没有办法将数组b元素初始化为不同于0的相同值?(不使用memset或for循环)
我想创建一个包含999个元素的int数组,每个元素的值都是999.有没有办法在声明期间初始化一个int数组,而不是遍历每个元素并将其值设置为999?
例如,我有:
int boo[8];
boo[1] = boo[3] = boo[7] = 4;
boo[0] = boo[2] = 7;
boo[4] = boo[5] = boo[6] = 15;
Run Code Online (Sandbox Code Playgroud)
我应该如何键入常量值?我看到类似的问题,但它没有帮助我.
编辑:还有一个问题,如果boo与索引0 1 3 4 5 6 7是恒定的但是boo [2]不是?有可能做到吗?
我想初始化一个3 x 3矩阵,前两行为0,最后一行为1.我已经宣布了一个2D数组int matrix[3][3]
我想在不使用循环的情况下初始化它,如下所示
0 0 0
0 0 0
1 1 1
我还想要一个N dimiensional数组的解决方案