gpt4 book ai didi

c - 在 C 中返回 int 数组

转载 作者:太空狗 更新时间:2023-10-29 16:12:26 24 4
gpt4 key购买 nike

<分区>

我有这个代码:

 1 #include <stdio.h>                                                               
2 #include <string.h>
3 #define LENGTH(a) sizeof(a)/sizeof(a[0]);
4
5 int *getNbits(int, int, char *);
6
7 int main() {
8 char ins[] = "00001111000011110000111100001111";
9 int *x = getNbits(0, 32, ins);
10
11 for (int i = 0; i < LENGTH(x) ; i++){
12
13 printf("%d", *(x + i));
14 }
15 return 0;
16 }
17
18 int* getNbits(int start, int offset, char instr[33]) {
19
20 int result[offset - 1];
21 for (int i = 0; i < offset; i++) {
22 result[i] = instr[i + start] == '1' ? 1 : 0; //- '0';
23 }
24 return result;
25 }

基本上,getNbits() 获取一个字符数组(0 或 1)并返回一个整数数组,每个元素是 0 或 1。

如果我在 for 循环中创建它时尝试打印数组“result”(使用 printf("%d",result[i]) ),它将返回 000011110000.....

但是我在返回类型方面遇到了问题,它给了我一个警告:函数返回局部变量的地址。 main 中的 for 循环只打印垃圾值。

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