24小时热门版块排行榜    

查看: 582  |  回复: 2

slaaack

新虫 (初入文坛)

[交流] 小白请各位大神帮我看看动态数组的问题 已有1人参与

各位大神,定义数组的时候,数组的维数一般都是定义好的, 我现在需要的是,数组的维数从文件中读取,我在网上找到,说在堆中分配空间可以定义动态数组。如下
//4×5
#include <stdio.h>
#include <malloc.h>
int **p;
int i,j;
int main()
{
p=(int **)malloc(4*sizeof(int *));
if (NULL==p) return 0;
for (i=0;i<4;i++) {
p=(int *)malloc(5*sizeof(int));
if (NULL==p) return 0;
}
for (i=0;i<4;i++) {
for (j=0;j<5;j++) {
p[j]=i*5+j;
}
}
for (i=0;i<4;i++) {
for (j=0;j<5;j++) {
printf(" %2d",p[j]);
}
printf("\n";
}
for (i=0;i<4;i++) {
free(p);
}
free(p);
}
我现在的问题是,这个是定义了个4X5的数组,如果我想从输入文件中的第一行内容读入数组的维数,输入文件的第一行为:
&class number= 26, nk= 41 /
所以我应该建立一个26X41的数组,根据输入文件的不同,这个维度也是不同的,请问这个程序应该怎么修改?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

锐利的碎片

木虫 (正式写手)

star watcher

★
小木虫: 金币+0.5, 给个红包,谢谢回帖
你这样分配的内存不连续,会有些性能问题,一般都这样写:
CODE:
#include <cstdio>
#include <cstdlib>

int main(int argc, char **argv)
{
  int n, m;
  printf("Input n, m: ");
  scanf("%d %d", &n, &m);
  printf("Attempt to allocate %d bytes.\n", n*m*sizeof(double));
  double **ptr = (double **) malloc(n*sizeof(double *));
  double *data = (double *) malloc(n*m*sizeof(double));
  if (NULL == ptr || NULL == data) {
    printf("Memory allocation failed!\n");
    exit(EXIT_FAILURE);
  }
  for (int i = 0; i < n; i++)
    ptr[i] = data + i*m;
  printf("Set up matrix values.\n");
  for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++)
      ptr[i][j] = i*j;
  printf("Matrix:\n");
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      printf("%12.8g ", ptr[i][j]);
    }
    printf("\n");
  }
  printf("Deallocating matrix...\n");
  free(ptr);
  free(data);
  printf("Done\n");
  return 0;
}

最后你的问题不是分配内存,是不会读文件吧。
2楼2014-05-30 18:31:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

slaaack

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 锐利的碎片 at 2014-05-30 18:31:51
你这样分配的内存不连续,会有些性能问题,一般都这样写:

#include <cstdio>
#include <cstdlib>

int main(int argc, char **argv)
{
  int n, m;
  printf("Input n, m: ";
   ...

好专业啊,谢谢啦

我以前都是直接定义一个维度确定的数组 然后用fread读入 但是每次都要改这个维度 很麻烦 所以想有没有其它方法可以直接从输入文件的第一行读入维度 然后再建立数组存储
3楼2014-06-01 11:51:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 slaaack 的主题更新
普通表情 龙 兔 虎 猫 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[找工作] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +4 1uaZt2kAZj2S 2026-10-31 7/350 2026-11-01 12:45 by BCdvBAEpt3zm
[公派出国] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +4 1uaZt2kAZj2S 2026-10-31 7/350 2026-11-01 12:40 by BCdvBAEpt3zm
[考博] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +4 1uaZt2kAZj2S 2026-10-31 6/300 2026-11-01 12:40 by BCdvBAEpt3zm
[基金申请] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +4 1uaZt2kAZj2S 2026-10-31 4/200 2026-11-01 12:38 by BCdvBAEpt3zm
[考博] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 1uaZt2kAZj2S 2026-10-30 10/500 2026-11-01 12:27 by BCdvBAEpt3zm
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 1uaZt2kAZj2S 2026-10-30 7/350 2026-11-01 12:27 by BCdvBAEpt3zm
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +4 1uaZt2kAZj2S 2026-10-30 17/850 2026-11-01 12:24 by BCdvBAEpt3zm
[论文投稿] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 1uaZt2kAZj2S 2026-10-30 12/600 2026-11-01 12:19 by BCdvBAEpt3zm
[考研] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 1uaZt2kAZj2S 2026-10-30 16/800 2026-11-01 12:14 by BCdvBAEpt3zm
[教师之家] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +5 X5bHxOULxFqb 2026-10-30 15/750 2026-11-01 12:11 by BCdvBAEpt3zm
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 X5bHxOULxFqb 2026-10-30 18/900 2026-11-01 12:11 by BCdvBAEpt3zm
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 hKe7U1kad5Sg 2026-10-31 5/250 2026-11-01 11:14 by BCdvBAEpt3zm
[基金申请] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 hKe7U1kad5Sg 2026-10-31 6/300 2026-11-01 11:09 by BCdvBAEpt3zm
[博后之家] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 1uaZt2kAZj2S 2026-10-31 7/350 2026-11-01 10:48 by BCdvBAEpt3zm
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +4 1uaZt2kAZj2S 2026-10-30 16/800 2026-11-01 10:27 by BCdvBAEpt3zm
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +4 X5bHxOULxFqb 2026-10-30 12/600 2026-11-01 00:15 by YXM1FDCSE8Bn
[考博] 2027博士申请-临床检验诊断学、病原生物学、微生物方向 50+3 yyh@ 2026-10-28 4/200 2026-10-31 12:47 by 可淡不可忘
[硕博家园] 申博自荐 2篇一区TOP+1篇EI+2公开发明专利 2027博士申请 +3 小小阿光 2026-10-27 3/150 2026-10-29 23:56 by 起风了的快乐
[文学芳草园] 闲聊 +3 myrtle 2026-10-25 6/300 2026-10-29 15:28 by myrtle
[考博] 申博求助 20+3 Katrinae 2026-10-26 4/200 2026-10-27 09:56 by 北京莱茵编辑
信息提示
请填处理意见