gpt4 book ai didi

c - 需要为 2D 元组数组和未知大小的 2D 指针数组分配内存?

转载 作者:行者123 更新时间:2023-11-30 17:06:19 24 4
gpt4 key购买 nike

在这里第一次提出问题,如果我错过了什么,很抱歉。我正在尝试用 C 来模拟物理学中的二维静电问题。我有一个主数组,我将在其中存储每个点的电势和电荷密度值,然后是一个指针数组,它将向主数组提供内存地址。

但是我不知道编译时的数组大小,因为它是运行时的用户输入,因此需要能够动态分配内存。这就是我已经拥有的,任何帮助表示赞赏。谢谢!

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

typedef struct tTuple { //Create new type called tuple
double poten; //potential
double cden; //charge density
} tuple;



int i, j;
int N, M;
#define a 10 //Grid Width
#define b 10 //Grid Height
int x1, y1, x2, y2; //Positions of two point charges
int my_rank, comm_size;
double w;

tuple mainarray [a][b];
double *pointerarray[a][b];
int convflag = 1; //Global convergence checker flag


/* More code below with main function containing scanf etc */

最佳答案

您将需要使用 malloc 或 calloc 动态分配内存。我在这里假设 a 和 b 是从用户那里获取的:

tTuple * main_array;

并在您的设置函数中放入

main_array = calloc(a*b, sizeof(tTuple));

为了进行错误检查,请测试 main_array 是否不为 NULL。要获取元素,请使用

main_array[i*b+j]

我不确定您打算如何使用指针数组 - 真的需要它吗? main_array 具有元素内存位置。

关于c - 需要为 2D 元组数组和未知大小的 2D 指针数组分配内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34813139/

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