c - 函数不返回数组值
问题描述
我正在从 main 执行一个函数,该函数返回一个数组。但是它没有返回所有数组值
#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#include<math.h>
int *decToBinary(int n);
//int binaryToDecimal(int);
//int binaryToDecimal( int *array_bin , unsigned int n );
int binaryToDecimal( int *array_bin );
int main()
{
int dec, bin[500],j,k,n,i ,dec_inv[k];
int *array_bin ;
array_bin = (int*) malloc(50*sizeof(int));
char message[1000],dmessage[1000];
int emessage[1000];
printf("\nEnter the text\n\n");
fgets(message,1000,stdin);
printf("%s\n ",message);
int len = strlen(message);
printf("%d\n",len-1);
char array[2][32] = {{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' ','.',',','?','(',')'},
{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31}};
char array_inv[2][32] = {{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31},
{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' ','.',',','?','(',')'}};
for(i=0;i<=len-2;i++) {
for(j=0;j<=1;j++) {
for(k=0;k<=31;k++) {
if (message[i] == array[j][k]){
emessage[i] = array[j+1][k];
n = array[j+1][k];
dec = n;
array_bin = decToBinary(n);
printf("The binary equivalent of %d is %d \n", dec, array_bin[i]);
// dec_inv[k] = binaryToDecimal(array_bin);
//printf("The inverse is %d\n", binaryToDecimal(array_bin));
}
}
}
}
}
// function to convert decimal to binary
int *decToBinary(int n)
{
// array to store binary number
static int binNum[500]; //, array_bin[31];
//printf("number as input%d\n",n);
int dec_num = n;
// counter for binary array
int i = 0; // ,k ,j ;
if (n == 0)
{
binNum[i] = 0;
i++;
}
while (n != 0) {
// storing remainder in binary array
binNum[i] = n % 2;
n = n / 2;
i++;
}
return binNum;
}
如何获取所有数组值?它只返回最后一个值。从 main 调用该函数并返回一个指向存储值的数组的指针。如何获取所有数组值?
解决方案
在 C 中,您不能返回数组。我建议在主函数中创建一个数组,并将指向该数组的指针作为参数传递给函数。然后该函数更新数组值,您可以在主函数中访问这些值。
推荐阅读
- c - 编译基本示例 (hoc1) yacc 程序时“警告”的隐式声明/冲突类型
- c# - .Net 在 DrawClosedCurve、DrawCurve 和 DrawBezier 之间转换
- javascript - JS:查找在数组中出现 x 多次的元素。(没有对象)
- java - 从 MediaStore.Images 获取 Uri
- python - 无法在 Python 中的 If 函数上打印正确的结果
- java - SSL CA 名称不匹配
- reactjs - 如何根据表中内容的大小使我的 react-bootstrap-table 列大小响应?
- javascript - 不能在 React Native 中只调用一次函数?
- c++ - 我可以从 C++ 定义之外的结构中添加数据成员/变量吗?
- jenkins - Jenkins 测试结果分析器不会根据执行顺序列出测试函数