Tag: multidimensional array

在C编程中将2个数组复制到1个数组中

如何将2个单独的2D数组复制到1个数组中,我在下面描述了我的意思: 我有一个数组:a,b,c我有第二个数组:d,e,f 我希望第三个数组同时具有上述数组:第三个数组:a,b,c,d,e,f 到目前为止,我的代码只是获取两个数组的值,并在打印第三个数组时注释掉: #include #include #include int main(){ int i,j,count; char ar1[3][10]={“a”,”b”,”c”}; char ar2[3][10]={“d”,”e”,”f”}; char ar3[6][10]; for (i=0;i<3;i++){ printf("%s\n",ar1[i]); } for (i=0;i<3;i++){ printf("%s\n",ar2[i]); } printf('new array:\n'); // for (i=0;i<6;i++) // printf("%s\t\n",ar3[i]); }

文件/程序范围内的2D数组

我需要一个可以从不同方法访问的数组,我必须在main()中分配这个数组,然后让其他函数如foo()访问这个数组。 这个问题帮助我分配了数组: 用malloc定义一个2D数组并修改它 我正在定义这样的数组: char(*array)[100] = malloc((sizeof *array) * 25200); 我在main()中这样做 我可以在这个数组中存储25200个字符串,通过array[1]访问它们 现在可以从不同的方法访问此数组,我该怎么做?

如何从字符串数组C创建一个字符串

我正在学习arrays,并想知道是否有人可以帮助我。 我有一个字符串数组,需要创建一个新的字符串,它是所有数组元素的串联。 我遇到的问题是我只能打印我的数组中的第一个字符串,而不是所有字符串。 我知道我的数组中每个字符串的末尾都有一个null,那么我该如何解决这个问题呢? 也许2Darrays? 顺便说一下,我不允许使用string.h中的任何字符串操作函数。 谢谢。 #include #include int findLength(char array[]) { int i = 0; for (i = 0; array[i] != ‘\0’; i++) { } return i; } void arrayToString(char string[]) { int n = 0; int i = 0; int l = findLength(string); char *finalString; finalString = malloc(l * sizeof(char)); for (i […]

我如何在函数内malloc结构数组? 代码另有工作

我正在尝试创建一个创建可变大小的2D funct数组的函数。 我正在使用以下代码,它似乎可以自行工作: typedef struct { //Starter Properties int TypeB; int TypeF; int TypeW; //Randomized Properties int RandB; int RandF; int RandW; //Derived Properties int Speed; } MapTileData; MapTileData **Map; int i, x=5, y=5; //Allocate Initial Space Map = (MapTileData**)calloc(x, sizeof(MapTileData)); for(i = 0; i < x; i++) { Map[i] = (MapTileData*)calloc(y, sizeof(MapTileData)); } 所以上面的代码创建了一个2D结构数组。 […]

分配char指针数组

我有一些文件,我正在将内容读入char数组,我想将我从每个文件中读取的内容存储在一个字符数组中,以便我可以访问单独的字符数组(文件内容) index,我不确定如何执行此操作的语法。 我的理解是我需要将模式数组中的每个内存地址设置为每个char数组一个内存地址; 到存储在patternData中的char数组,但我不知道如何设置它。 我错过的语法是什么,我需要让它发生? 我试过的 我原以为如果我存储了一种char*那么我需要一个char**来存储char数组的单独数组。 我将使用以下表示法来访问char* ,以将模式索引的内存地址设置为 &patterns[INDEX] = &pData; 但是这不起作用。 有很多“char指针数组”问题,但我不确定将pData简单地分配给模式索引的正确方法。 char *tData; int tLength; char *pData; int pLength; char **patterns; void ReadFromFile(FILE *f, char **data, int *length) //This is what is passed into function int main(int argc, char **argv) { for (int i = 1; i <= 5; i++) { FILE […]

在sqlite的回调函数中动态重新分配2个dim数组

我正在研究sqlite-.dll用于教育目的。 我试图在每次使用数据库中的新行调用回调函数时动态地在我的2维数组中添加一行。 (例如SELECT * FROM CUSTOMER)。 然后,应将此数组中存储的数据作为C接口返回。 SQLCONTROL_API char** sql_execQuery(char *dbName, char *sqlStatement) { char **a = 0; /*Some sqlite stuff*/ int rc = sqlite3_exec(db, sqlStatement, callback, &a, &zErrMsg); return a; } 使用回调函数: static int callback(void *data, int argc, char **argv, char **azColName) { char **old = (char **)data; int num_rows = sizeof(old) / sizeof(old[0]); […]

Swig和多维数组

我正在使用Swig将Cthon与C代码连接起来。 我想调用一个C函数,它接受一个包含int ** var的struct的参数: typedef struct { (…) int** my2Darray; } myStruct; void myCFunction( myStruct struct ); 我正在努力研究多维数组。 我的代码如下所示: 在接口文件中,我使用carray像这样: %include carrays.i %array_class( int, intArray ); %array_class( intArray, intArrayArray ); 在python中,我有: myStruct = myModule.myStruct() var = myModule.intArrayArray(28) for j in range(28): var1 = myModule.intArray(28) for i in range(28): var1[i] = (…) filling var1 (…) var[j] […]

初始化2Darrays时出现分段错误

我已经检查过我的代码正确地划分了内存空间,但是一旦我尝试将我的2D数组初始化为某些值然后总结这些值,我就会在2×2数组上收到分段错误。 我想最终将我的代码扩展到更大的数组,但我甚至无法在这里工作。 我知道关于malloc和2D数组有很多关于分段错误的post,但由于我的C知识刚刚开始,我一直无法找到一个帮助我解决问题的post。 您可以给予任何帮助,或者如果您能指出我之前的问题,将不胜感激。 谢谢! #include #include #include int main() { double sum=0; int i,j; int N = 2; double **array; array = malloc(N * sizeof(double *)); if(array == NULL) printf(“Failure to allocate memory.\n”); for(i=0; i<=N; i++) { array[i] = malloc(N * sizeof(double)); if(array[i] == NULL) { printf("Failed to allocate memory for arr[%d].\n", i); exit(0); […]

打开MPI以在PGM文件中分发和操作2d数组

我需要使用Open MPI在10台正在运行的计算机中分配PGM文件中的2darrays。 然后我需要操纵数组的每个值以获得负图像(255-i),然后打印输出。 我正在考虑使用mpi_scatter和mpi_gather来分发数据。 现在的问题是如何将二维数组读入子数组并将子数组发送到每个工作计算机来进行操作。 我正在用C编写这个程序。 任何人都可以帮我解决这个问题或提出想法吗? 谢谢。 以下是PGM文件中的数组示例: P2 #由’xv balloons_bw.tif’创建 640 480 255 232 227 220 216 212 209 207 206 205 205 205 207 208 209 210 211 212 211 211 213 212 211 210 209 210 210 211 212 211 210 210 210 210 211 210 210 210 210 209 210 […]

C多维数组字符串

我正在声明一个字符串数组非常简单,硬编码,但它一直给我array type has incomplete element type错误。 我想这与每个数组的长度有关但我不知道如何修复它而不设置字符串的固定长度。 char allocate[][2][] = { // Error with or without the 2 {“value1″,”value2”}, {“value3″,”value4”} };