我有這樣的代碼,所述函數strtol接收雙指針,並假設字符串「prueba」是指向字符串的第一個元素的存儲器地址(這是相同的存儲器地址的指針整個鏈條),那麼這是因爲如果它被傳遞指針的目錄,我不知道如果我解釋了,反正這是行不通的:/在這裏發出警告爲什麼我不能傳遞鏈的地址? strtol將
ret = strtol(str, &prueba, 10);
長整型與strtol (const char * str,char ** endptr,int base)
strtol將str中字符串的起始部分轉換爲long int va按照給定的基數進行。 「endptr」他是參考類型char *的一個目的,其值由該函數的數值後設置爲下一個字符在str中。
#include <stdio.h>
#include <stdlib.h>
int main()
{
char str[30] = "2030300 This is test";
char prueba[20];
char *ptr;
long ret;
printf("\nLa cadena inicial es: %c%s%c\n",34,str,34);
ret = strtol(str, &ptr, 10);
printf("\nThe number(unsigned long integer) is %ld\n", ret);
printf("String part is |%s|\n", ptr);
ret = strtol(str, &prueba, 10);
printf("\nProbando: %c%s%c\n",34,prueba,34);
return(0);
'&prueba'是指向的20'char's陣列。 –
'&prueba'不是'char **'。它是一個char(*)[20]'。也就是說,它是一個指向數組的指針。你需要聲明爲:'char * prueba;' – kaylum
但如果我聲明char * prueba它是一個指向數組的指針。像char prueba [20] – EmiliOrtega