Dieser Code funktioniert wie erwartet scheint, füllt eine Reihe von Zahlen einen einzelnen Zeigerstrtol Wiederverwendung param
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
int main(void)
{
int arr[4], count = 0, i;
char *p, s[32] = " \t 10, 15 \n ,20, 25 , ";
p = s;
do {
arr[count++] = (int)strtol(p, &p, 10);
while (isspace(*p) || *p == ',') p++;
} while (*p);
for (i = 0; i < count; i++) {
printf("%d\n", arr[i]);
}
return 0;
}
Meine Frage ist, mit:
Es gilt p als param1 (Quelle) zu verwenden und & p als Parameter 2 (Adresse des ersten ungültigen Zeichens) in strtol?
Vielen Dank Klas, aber was ist mit den einschränkenden Keywords? für die Lebensdauer des Zeigers, nur es oder ein direkt daraus abgeleiteter Wert (z. B. Zeiger + 1) wird verwendet, um auf das Objekt zuzugreifen, auf das er zeigt, das scheint ein Problem zu sein –
Es wäre ein Problem, wenn strtol' würde auf "** endptr" zugreifen, aber das tut es nicht (aus den Gründen, die ich in meinem Kommentar zu Kirilenkos Antwort erwähnt habe). –