gpt4 book ai didi

c - 初始化数组时 VS2010 中的“初始化”错误

转载 作者:行者123 更新时间:2023-12-02 04:56:31 26 4
gpt4 key购买 nike

我需要分配一个包含 6 个数组的数组,它来自类型 set[maxSetLength]

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#define maxSetLength 129

typedef short int set[maxSetLength];

int _tmain(int argc, _TCHAR* argv[]){
int i;
set a={0},b={0},c={0},d={0},e={0},f={0}; // Assigning 6 Sets (Arrays) initialized by zeros
set sets[6]={a,b,c,d,e,f}; //Inserting All Sets into one Array (Array Of Arrays)
}

在 CodeBlocks 中它编译没有错误,在 VS2010 中它没有,这些是错误:

6 次

error C2440: 'initializing' : cannot convert from 'set' to 'short'

6次

IntelliSense: a value of type "short *" cannot be used to initialize an entity of type "short"

总共有 12 个错误

最佳答案

您需要使用指针(它们在 C 中很棘手)。试试下面的代码(我添加了一些调试,所以把它改回 0):

#include <stdio.h>
#include <string.h>

#define maxSetLength 129

typedef short int set[maxSetLength];

main()
{

int i;
set a={55},b={0},c={0},d={0},e={0},f={66}; // Assigning 6 Sets (Arrays) initialized by zeros
set sets[6]={*a,*b,*c,*d,*e,*f};

printf("%d\n", sets[0][0]); // should be 55
printf("%d\n", sets[0][5]); // should be 66

}

关于c - 初始化数组时 VS2010 中的“初始化”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21567978/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com