精确宽度整数类型的正确格式说明符

时间:2013-09-21 11:06:23

标签: c types formatting

我对C有点新。以下是我编写的使用无符号精确宽度整数的代码。但是,当使用scanf()时,我不知道如何为uint8_t指定正确的格式。

尝试编译代码时,我收到以下警告:

  

red_black_tree.c:14:2:警告:格式'%i'需要类型'int *'的参数,但是参数   2的类型为'uint8_t *'[-Wformat]

代码如下:

#include <stdio.h> /*printf, scanf, NULL*/
#include <stdlib.h> /*malloc, free, rand*/
#include <stdint.h> /*type support*/

int main(){

   uint8_t i, number, *A;

   printf("specify length of array:");
    scanf("%i", &i);

   A = (uint8_t *) malloc(sizeof(uint8_t)*i);

   for(number=0; number < i; number ++){
            scanf("%i", &(A[i]) );
    }

   free(A);
}

0 个答案:

没有答案