<分区>
我有以下代码,它是一个更大程序的一部分。我正在尝试将一个 int 传递给一个函数,该函数会将 char 数组 ( name[100] ) 的一部分复制到另一个直到到达某个字符,然后更新 int 值。
#include <stdio.h>
void time_loop(int *a, char name[100], char *data, char until_char)
{
int c = 0;
while(name[*a] != until_char)
{
data[c] = name[*a];
a++;
c++;
}
a = a + 2;
}
int main()
{
int i = 3;
char name[100] = {' ', ' ', ' ', 'f', 'o', 'o', ':', '\0'};
char fill_this[15];
time_loop(&i, name, fill_this, ':');
printf("current char index: %d\n", i);
printf("the word is: %s", fill_this);
return 0;
}
目前代码运行直到它命中:
while(name[*a] != until_char)
一段代码,访问 *a 时出现问题。
我总是可以采取简单的方法,将函数更改为:
int time_loop(int a, char name[100], char *data, char until_char)
并返回一个 int,但必须有一种方法可以正确地做到这一点。
问:将类型 int* 作为数组的索引号传递的正确方法是什么?