C语言中的字符串引用

时间:2018-06-20 10:32:41

标签: c string memory


假设我创建了一个char * s =“ something”,然后分配了另一个变量s1 = s,s1将使用s的内存引用,还是将其转到另一个内存块并复制s的“值”,以便自己参考吗?

2 个答案:

答案 0 :(得分:2)

假定您使用的是C而不是C ++,则“字符串”实际上是指向字符的指针(大概是字符数组,实际上是“字符”)。因此,分配“字符串”就是分配指针,并且将不会涉及所指向的内存(由所述指针)的副本。

<mat-checkbox (change)="checkCheckBoxvalue($event)">Check me!</mat-checkbox>

checkCheckBoxvalue(event){
    console.log(event.checked)
  }

答案 1 :(得分:1)

在C中,没有字符串类型。 C中的字符串只是字符数组。字符串变量声明为char *类型,它是指向char(数组)的指针。

因此,赋值s1 = s只会将指针从s复制到s1,即内存引用,而不是字符串数据的副本。

如果要复制字符串,可以使用strdup()函数,该函数将分配内存并将字符串数据复制到其中。请记住,之后free()