1. 程式人生 > >snprintf不能使用"字符串指針"賦值,可以使用字符數組

snprintf不能使用"字符串指針"賦值,可以使用字符數組

oid 數組 npr 字符數 mar 指針 return sprintf code

#cat snprintf.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student{
    int age;
    char *name;
};

int main(void)
{
    /*t1 結構體指針*/
    struct student *t1;
    t1 = malloc(sizeof(struct student));
    t1->age = 11;
    t1->name = "ahao.mah";

    /*t2 結構體變量*/
    struct student t2;
    t2.name = "jack";
    t2.age = 22;

    printf("t1:%s\n", t1->name);
    printf("t2:%s\n", t2.name);

    /*snprintf不能使用字符串指針賦值*/
    char *a;
    char *dev = t1->name;
    /*可以使用字符串數組*/
    //char dev[10];
    //strcpy(dev, t1->name);

    printf("dev:%s\n", dev);
    sprintf(a, "/dev/%s", dev);
    printf("a:%s\n", a);

    return 0;
}

snprintf不能使用"字符串指針"賦值,可以使用字符數組