c - 将数组作为参数传递并分配内存
问题描述
请有人帮我解决这个问题..
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct{
int id;
char nama[50];
} test_t;
void test(int* count, test_t* t){
(*count) = 5;
t = (test_t*)malloc(sizeof(*t)*5);
for(int i=0;i<5;i++){
t[i].id = i;
strcpy(t[i].nama, "test");
printf("id: %i\nnama: %s\n", t[i].id, t[i].nama);
}
printf("t size: %lu\n", sizeof(t));
}
int main(int argc, char** argv){
int a = 1;
test_t* item;
test(&a, item);
for(int i=0;i<a;i++){
printf("id: %i\nnama: %s\n", item[i].id, item[i].nama);
}
return 0;
}
我尝试将指针传递给一个结构,然后从中创建数组,然后将数组返回给调用函数..但我无法从中得到结果..任何帮助将不胜感激..谢谢...
顺便说一句..这是输出结果
id: 0
nama: test
id: 1
nama: test
id: 2
nama: test
id: 3
nama: test
id: 4
nama: test
t size: 8
id: 1
nama:
id: -767851619
nama: �
id: -767851396
nama: �
id: -767849773
nama: �
id: -767849398
nama: �
解决方案
推荐阅读
- c - 在打开的文件中寻找 0 是否比关闭文件然后再次打开它更快?
- javascript - 循环遍历多维数组以生成新数据并在节点 js / javascript 中追加新的键值
- r - 将字符串传递给 tidybayes::spread_draws()
- python - 在 matplotlib 错误栏中,如何通过不同颜色的颜色传递不同的点?
- node.js - 设置锯齿浏览器时被 CORS 策略问题阻止
- python - How to do for loop with a list that contains lists with another list?
- html - 为什么导航栏内的容器有限制宽度而不是填充整个宽度?
- android - 如何使用 okhttp post json 并通过 android 获取 jeson 返回?
- javascript - 水合一个 json 对象数组,以便每个具有不同键数的 json 共享最大键
- javascript - 省略分号时,缩小的 Javascript 文件是否更小?