那么问题来了!!!
不知道为什么,在Linux下点那个上传的图片的按钮没有任何反应, 所以委屈各位大佬看下文字这样 int (* create(int, int) ) ; 我就定义了一个返回值为 指向了有8个元素的一维维数组指针对吧!
那么如果我不确定返回值为指向多少个元素的一维数组指针,该怎么写 ?(在不用void指针的情况下)
这个需要C++的vector,当然用C也行,但是有些麻烦
用二维指针,返回一个结构体,那个结构体有两个元素,分别是返回的内容(指针)和返回内容的大小
完美解决。。 无符号整形 发表于 2018-8-17 19:52
这个需要C++的vector,当然用C也行,但是有些麻烦
用二维指针,返回一个结构体,那个结构体有两个元素,分 ...
函数还可以返回结构体............. thanks a million{:10_245:} int (*create(int, int));
#include <stdio.h>
#include <stdlib.h>
int (*Create(int flag, int index))
{
static int data1 = {1, 2, 3, 4, 5};
static int data2 = {100, 200, 300, 400, 500, 600, 700, 800};
static int data3 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
if(flag)
{
switch(index)
{
case 1:
return data1;
case 2:
return data2;
case 3:
return data3;
}
}
return NULL;
}
int main(void)
{
int *p1 = Create(1, 1);
int *p2 = Create(1, 2);
int *p3 = Create(1, 3);
for(int i = 0; i < 5; ++i)
{
printf("%d ", p1);
}
printf("\n");
for(int i = 0; i < 8; ++i)
{
printf("%d ", p2);
}
printf("\n");
for(int i = 0; i < 10; ++i)
{
printf("%d ", p3);
}
printf("\n");
return 0;
}
人造人 发表于 2018-8-17 20:29
虽然看来这样傻傻的,但是管用{:10_277:} 微末非末 发表于 2018-8-17 23:14
虽然看来这样傻傻的,但是管用
^_^
页:
[1]