26/03/18 22:28:35.99 Pr3hbF5X.net
記事の趣旨は下記のような場合にエラーが検出できるってことなんだけど
#include <stdint.h>
#define BUF_SIZE 5
#define DATA_SIZE 7
void fill_zero( uint8_t (*buf)[ BUF_SIZE ] );
int main( void )
{
uint8_t data[ DATA_SIZE ];
fill_zero( &data ); /* ここでコンパイラが警告またはエラーを出す! */
return 0;
}
void fill_zero( uint8_t (*buf)[ BUF_SIZE ] )
{
uint8_t i;
for ( i = 0; i < BUF_SIZE; i++ )
{
(*buf)[i] = (uint8_t)0x00U; /* ポインタを一段デリファレンスしてからアクセス */
}
}
URLリンク(godbolt.org)