C言語 関数でポインタを返す方法【初心者向け解説】
C言語では、関数内でポインタを返す場合は、次の手順に従う必要があります。
- 整数のポインタ
- char*を使う
- 関数の内部でポインタ変数を作成し、メモリスペースを割り当てます。
- 利用返回地址将变量的信息传递给调用函数。
関数内でポインタを返す方法を示す簡単なコード例が以下に示されています。
#include <stdio.h>
#include <stdlib.h>
int* createArray(int size) {
int* ptr = (int*)malloc(size * sizeof(int)); // 分配内存空间
if (ptr == NULL) {
printf("Memory allocation failed\n");
exit(1);
}
for (int i = 0; i < size; i++) {
ptr[i] = i; // 对数组赋值
}
return ptr;
}
int main() {
int* array = createArray(5); // 调用函数创建数组
for (int i = 0; i < 5; i++) {
printf("%d ", array[i]); // 打印数组元素
}
free(array); // 释放内存空间
return 0;
}
上の例では、createArray関数は整数配列へのポインタを返し、内部で5つの要素を持つ配列を割り当てます。main関数でcreateArray関数を呼び出し、配列の要素値を出力し、最後にメモリ領域を解放します。
ポインターを返す関数を使用した後に、メモリリークを防ぐために必ずfree関数を使用して割り当てられたメモリ領域を解放する必要があることに注意してください。