gpt4 book ai didi

c - 小数组组成大数组

转载 作者:行者123 更新时间:2023-11-30 20:14:47 25 4
gpt4 key购买 nike

我做了以下功能:

int * getMat(char x){
int[2][2] returnValue;
switch(x){
case "0": returnValue = [0,0;0,0];
break;
case "1": returnValue = [1,1;1,0];
break;
....
etc
}
return returnValue;
}

在主函数中,我有这些 vector :

 char a[] = "010110"
int bigArray[100][2];

我需要通过迭代 a[] 中的每个字符来填充 bigArray[][],并将 getMat() 返回的数组添加到 bigArray。

换句话说,对于字符序列“010110”,bigArray 应该如下所示:

[0,0,1,1,0,0,1,1,1,1,0,0;
0,0,1,0,0,0,1,0,1,0,0,0]

我被困在这个:

int bigArray[100][2];
for(int i=0; i<strlen(a); i++){
int mat[2][2] = getMat(a[i]);

}

有人可以帮我一些建议吗?我不知道如何继续。

最佳答案

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

int (*getMat(char x))[2][2] {
static int returnValue[][2][2] = {
{{0,0},{0,0}},
{{1,1},{1,0}},
//...
};
switch(x){
case '0':
return &returnValue[0];
case '1':
return &returnValue[1];
//....
//etc
}
return NULL;
}


int main(void){
char a[] = "010110";
int bigArray[2][100];
int (*tmp)[2][2];
for(int i=0;a[i];++i){
tmp = getMat(a[i]);
memcpy(&bigArray[0][i*2], &(*tmp)[0], sizeof((*tmp)[0]));
memcpy(&bigArray[1][i*2], &(*tmp)[1], sizeof((*tmp)[1]));
}
//test print
for(int i=0;i<12;++i)
printf("%d ", bigArray[0][i]);//0 0 1 1 0 0 1 1 1 1 0 0
printf("\n");
for(int i=0;i<12;++i)
printf("%d ", bigArray[1][i]);//0 0 1 0 0 0 1 0 1 0 0 0
printf("\n");
return 0;
}

关于c - 小数组组成大数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24342442/

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