081.Return Pointer Function 返回指针的函数
来源:互联网 发布:js继承例子 编辑:程序博客网 时间:2024/06/05 11:45
--------------- main.m ---------------
#import<Foundation/Foundation.h>
#define LENGTH5
int* map(int* data ,int(*fn)())
{
static int result[LENGTH];
int* map(int* data ,int(*fn)())
{
static int result[LENGTH];
int i = 0;
for(int* p = data; p < data + LENGTH ; p++)
{
result[i++] = (*fn)(*p);
}
return result;
}
intnoChange(intval)
{
return val;
intnoChange(intval)
{
return val;
}
intsquare(intval)
{
return val * val;
{
return val * val;
}
intcube(intval)
{
return val * val * val;
}
intmain()
{
{
return val * val * val;
}
intmain()
{
int data[] = {20 , 12 , 8 , 36,24};
int* arr1 =map(data ,noChange);
for(inti = 0 ; i < LENGTH ; i ++)
{
printf("%d , ", *(arr1 + i));
}
printf("\n");
int* arr2 = map(data , square);
for(inti = 0 ; i < LENGTH ; i ++)
{
printf("%d , ", *(arr2 + i));
}
printf("\n");
int* arr3 = map(data , cube);
for(inti = 0 ; i < LENGTH ; i ++)
{
printf("%d , ", *(arr3 + i));
}
printf("\n");
for(inti = 0 ; i < LENGTH ; i ++)
{
printf("%d , ", *(arr1 + i));
}
printf("\n");
int* arr2 = map(data , square);
for(inti = 0 ; i < LENGTH ; i ++)
{
printf("%d , ", *(arr2 + i));
}
printf("\n");
int* arr3 = map(data , cube);
for(inti = 0 ; i < LENGTH ; i ++)
{
printf("%d , ", *(arr3 + i));
}
printf("\n");
}
一、编写本节代码的具体步骤:
1.参照003节的代码编写步骤。
二、本节代码涉及到的知识点:
1.当函数返回指针时需要注意,如果该指针指向的是被调用函数中的一个局部变量,这将非常危险。
2.因为函数调用完了之后,该函数中局部变量所占用的内存空间将立即被释放,此时返回的数据是不确定的。
3.为了保证函数返回的指针是有效的,这个局部变量应该使用static来修饰。
0 0
- 081.Return Pointer Function 返回指针的函数
- 081.Return Pointer Function 返回指针的函数
- 函数指针Function Pointer
- 函数指针 Function Pointer
- function pointer(函数指针)
- Function pointer - 函数指针
- Pointer function - 指针函数
- 函数指针(function pointer)
- 079.Pointer Function 指向函数的指针
- 079.Pointer Function 指向函数的指针
- 指向函数的指针 ------ 函数指针(function pointer)
- 函数指针(function pointer)
- C++ 成员函数指针的问题 pointer-to-member-function
- 069.Pointer 指针作为函数的返回值
- 069.Pointer 指针作为函数的返回值
- Function Pointer of class member function (类的成员函数指针)
- Function Pointer of class member function C++的类成员函数指针简要
- Function Pointer of class member function (类的成员函数指针)
- 077.Char Pointer String 用指针表示字符串
- 如何查看源码
- 078.Char Pointer Arg 字符指针作为函数参数
- 079.Pointer Function 指向函数的指针
- 080.Function Pointer Arg 函数指针作为函数参数
- 081.Return Pointer Function 返回指针的函数
- java 求主机IP地址及其相对应的子网掩码
- 082.Pointer Array 指针数组
- 暗时间
- 083.Argv 主函数形参
- 084.Pointer Pointer 指向指针的指针
- logback, slf4j, log4j and commons-logging for Hadoop and Hbase
- 085.Struct 两步定义结构体
- win8.1安装mysql56版本的时候出现服务无法启动