English 中文(简体)
C 字符串字典处理
原标题:C string literal handling

程式撞车的以下代码有什么错? 给予分割断层错误。 我使用 gcc 。

uint8_t result = 1      

InsertRow("Name","Details of work",result);     

void InsertRow(char *Name, char *Description,uint8_t Result)   
{  
   char Buffer[500];  

   if(Result==1)   
      sprintf(Buffer,"<tr><td>%s </td> <td> %s </td> <td>  %s </td></tr>",Name,Description,Result);   
} 
最佳回答

您重新使用 < code%s 格式化参数来表示类型 < code> beint8_t 的参数, 这应该是 < code_ u , 您应该将值投到 < code> untignign int 匹配。 这样可以避免您只关心确切类型并调整事项( 如评论者建议的那样) 。

此外,我们很难知道缓冲区足够大。当然,如果你有,你可以使用snprinf () 来避免。

问题回答

sprintf(Buffer,"<tr><td>%s </td> <td> %s </td> <td>  %s </td></tr>",Name,Description,Result);    

您正在通过 Result (类型为 unit8_t ) 作为字符阵列的指针

这意味着集成值将作为一个指针被重新复制为指针, 该指针极有可能指向您无法访问的内存 -- 因此, segu. 错误 。 您需要用适当的格式标志替换第三个 , 将值打印为整数

note : 在此情况下, 不要直接使用 , 因为您的 beint8_t 类型不能保证与 (很可能不是) 的大小相同。 如果您将 Result 的值投放到第一个 ( >(int)Result ), 您可以使用

结果不是一个字符*, 您可能想要%d 的字符*





相关问题
Simple JAVA: Password Verifier problem

I have a simple problem that says: A password for xyz corporation is supposed to be 6 characters long and made up of a combination of letters and digits. Write a program fragment to read in a string ...

Case insensitive comparison of strings in shell script

The == operator is used to compare two strings in shell script. However, I want to compare two strings ignoring case, how can it be done? Is there any standard command for this?

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

String initialization with pair of iterators

I m trying to initialize string with iterators and something like this works: ifstream fin("tmp.txt"); istream_iterator<char> in_i(fin), eos; //here eos is 1 over the end string s(in_i, ...

break a string in parts

I have a string "pc1|pc2|pc3|" I want to get each word on different line like: pc1 pc2 pc3 I need to do this in C#... any suggestions??

Quick padding of a string in Delphi

I was trying to speed up a certain routine in an application, and my profiler, AQTime, identified one method in particular as a bottleneck. The method has been with us for years, and is part of a "...